<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>Data-Table 表格</title>
    <link rel="stylesheet" href="/res/frame/layui/css/layui.css">
    <link rel="stylesheet" href="/res/frame/static/css/style.css">
    <link rel="icon" href="/res/frame/static/image/code.png">
</head>
<body class="body">

<!-- 工具集 -->
<div class="my-btn-box">
    <span class="fl">
        <a class="layui-btn btn-add btn-default" id="btn-refresh"><i class="layui-icon">&#x1002;</i></a>

    </span>
    <span class="fl">
       <span class="fl">
        <span class="layui-form-label">设备名称：</span>
        <div class="layui-input-inline" style="float: left;">
            <input type="text" id='pDevName' autocomplete="off" placeholder="设备名称" class="layui-input">
        </div>

      <span class="layui-form-label">端口名称：</span>
        <div class="layui-input-inline" style="float: left;">
            <input type="text" id='pName' autocomplete="off" placeholder="端口名称" class="layui-input">
        </div>
       <button class="layui-btn" data-type="reload">搜索</button>
    </span>
    </span>
</div>

<!-- 表格 -->

<table class="layui-hide" id="portTable" lay-filter="portList"></table>

<script type="text/javascript" src="/res/frame/layui/layui.js"></script>
<script type="text/javascript" src="/res/js/index.js"></script>
<script type="text/javascript" th:inline="none">
    // layui方法
    layui.use(['table', 'form', 'layer', 'vip_table', 'cookie', 'laydate'], function () {

        // 操作对象
        var form = layui.form
            , table = layui.table
            , layer = layui.layer
            , vipTable = layui.vip_table
            , $ = layui.jquery,
            cookie = layui.cookie,
            laydate = layui.laydate;

        //日期选择框渲染
        laydate.render({
            elem: '#beginDate',
        });
        laydate.render({
            elem: '#endDate',
        });


        // 表格渲染
        var tableIns = table.render({
            elem: '#portTable'                  //指定原始表格元素选择器（推荐id选择器）
            , height: vipTable.getFullHeight()
            , cols: [[
                {type: 'numbers', fixed: 'left', title: '序号'}
                , {
                    fixed: 'left', title: '操作', width: 300, align: 'center', templet: function (d) {
                        return "<a class=\"layui-btn layui-btn-sm layui-btn-radius layui-btn-normal\" lay-event=\"edit\">编辑</a>\n" +
                            "    <a class=\"layui-btn layui-btn-sm layui-btn-radius layui-btn-danger\" lay-event=\"detail\">详情</a>" +
                            ret(d)
                    }
                }
                , {field: 'pName', title: '端口名称', align: 'center'}
                , {field: 'pIndex', title: '端口索引', align: 'center'}
                , {field: 'pDevName', title: '设备名称', align: 'center'}
                , {field: 'pkId', hide: true}
                , {field: 'devConId', hide: true}
                , {field: 'pDevIp', title: '设备IP', align: 'center'}
                , {field: 'pDescr', title: '端口描述', align: 'center'}
                , {
                    field: 'pStatus', title: '端口状态', align: 'center',
                    templet: function (d) {
                        return d.pStatus == 1 ? "在线" : "离线";
                    }
                }
                , {
                    field: 'pInoctets', title: '入网流量(M)', align: 'center',
                    templet: function (d) {
                        return toDecimal2(d.pInoctets / (8 * 1024 * 1024));
                    }
                }
                , {
                    field: 'pOutoctets', title: '出网流量(M)', align: 'center',
                    templet: function (d) {
                        return toDecimal2(d.pOutoctets / (8 * 1024 * 1024));
                    }
                }
                , {field: 'pCreateDate', title: '创建时间', align: 'center'}

            ]]
            , id: 'tableReload'
            , url: '/port/listByPage'
            , cellMinWidth: 80
            , method: 'post'
            , page: true
            , contentType: 'application/json'
            , request: {
                pageName: 'pageNum' //页码的参数名称，默认：page
                , limitName: 'pageSize' //每页数据量的参数名，默认：limit
            }
            , parseData: function (res) { //res 即为原始返回的数据
                return {
                    "code": res.code, //解析接口状态
                    "msg": res.message, //解析提示文本
                    "count": res.data.total, //解析数据长度
                    "data": res.data.list //解析数据列表
                }
            }, response: {
                statusName: 'code' //规定数据状态的字段名称，默认：code
                , statusCode: "200" //规定成功的状态码，默认：0
                , msgName: 'msg' //规定状态信息的字段名称，默认：msg
                , countName: 'count' //规定数据总数的字段名称，默认：count
                , dataName: 'data' //规定数据列表的字段名称，默认：data
            }
            , loading: false
            , limits: [30, 60, 120, 300]
            , limit: 30 //默认采用30
            , done: function (res, curr, count) {
            }
        });


        //搜索数据
        var active = {
            reload: function () {
                //执行重载
                table.reload('tableReload', {
                    page: {
                        curr: 1 //重新从第 1 页开始
                    }
                    , where: {
                        pDevName: $("#pDevName").val(),
                        pName: $("#pName").val()
                    }
                });
            },
        };

        $('.my-btn-box .layui-btn').on('click', function () {
            var type = $(this).data('type');
            active[type] ? active[type].call(this) : '';
        });

        // 刷新
        $('#btn-refresh').on('click', function () {
            tableIns.reload();
        });

        table.on('tool(portList)', function (obj) { //注：tool 是工具条事件名，test 是 table 原始容器的属性 lay-filter="对应的值"
            var data = obj.data //获得当前行数据
                , layEvent = obj.event; //获得 lay-event 对应的值
            if (layEvent === 'add') {
            } else if (layEvent === 'edit') {
                layer.confirm('确认编辑端口', function (index) {
                    edit(data.pkId)
                });
            } else if (layEvent === 'del') {
                layer.confirm('确认删除设备', function (index) {
                    del(data.pkGuid);
                });
            } else if (layEvent === 'addCon') {
                addCon(data.pkId, "PORT")
            } else if (layEvent === 'editCon') {
                editCon(data.devConId)
            }
        });

        function toDecimal2(x) {
            var f = parseFloat(x);
            if (isNaN(f)) {
                return false;
            }
            var f = Math.round(x * 100) / 100;
            var s = f.toString();
            var rs = s.indexOf('.');
            if (rs < 0) {
                rs = s.length;
                s += '.';
            }
            while (s.length <= rs + 2) {
                s += '0';
            }
            return s;
        }

        function ret(d) {

            return (d.devConId != null && d.devConId != "") ? "<a class=\"layui-btn layui-btn-sm layui-btn-radius layui-btn-normal\" lay-event=\"editCon\">编辑阈值</a>" :
                "<a class=\"layui-btn layui-btn-sm layui-btn-radius layui-btn-normal\" lay-event=\"addCon\">添加阈值</a>\n"
        }

        table.on('rowDouble(portList)', function (obj) {
            openSpeeds(obj)
            obj.tr.addClass('layui-table-click').siblings().removeClass('layui-table-click');
        });

        function del(pkGuid) {
            $.ajax({
                url: '/dev/del?pkGuid=' + pkGuid,
                type: "get",
                contentType: "application/json",
                success: function (result) {
                    console.log(result)
                    if (result.code === 200) {

                        layer.msg(result.msg);
                        tableIns.reload();
                    } else {
                        layer.msg(result.msg);
                        tableIns.reload();
                    }
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    console.log(XMLHttpRequest.responseText);

                }
            });
        }

    });

    function GetQueryString(name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
        var r = window.location.search.substr(1).match(reg);
        if (r != null) return unescape(r[2]);
        return null;
    }


    function addCon(id, ConType) {
        layer.open({
            title: '添加阈值',
            type: 2,
            anim: 5,
            area: ['520px', '470px'],
            content: ['/res/html/admin/addCon.html?id=' + id + "&conType=" + ConType, 'no'] //这里content是一个URL，如果你不想让iframe出现滚动条，你还可以content: ['http://sentsin.com', 'no']
        });
    }

    function openSpeeds(obj) {
        layer.open({
            title: "端口:" + obj.data.pIndex + '  :网速详情',
            type: 2,
            anim: 0,
            maxmin: true,
            area: ['1200px', '400px'],
            content: ['/res/html/admin/speed.html?pkId=' + obj.data.pkId] //这里content是一个URL，如果你不想让iframe出现滚动条，你还可以content: ['http://sentsin.com', 'no']
        });

    }

    function editCon(pkGuid) {
        layer.open({
            title: '编辑阈值',
            type: 2,
            anim: 5,
            area: ['520px', '470px'],
            content: ['/res/html/admin/editCon.html?pkGuid=' + pkGuid, 'no'] //这里content是一个URL，如果你不想让iframe出现滚动条，你还可以content: ['http://sentsin.com', 'no']
        });
    }


    function edit(pkId) {
        layer.open({
            title: '编辑设备',
            type: 2,
            anim: 5,
            area: ['300px', '200px'],
            content: ['/res/html/admin/editPort.html?pkId=' + pkId, 'no'] //这里content是一个URL，如果你不想让iframe出现滚动条，你还可以content: ['http://sentsin.com', 'no']
        });
    }


    function ref() {
        $('#btn-refresh').on('click', function () {
            tableIns.reload();
        });
    }


</script>
<!-- 表格操作按钮集 -->


</body>
</html>